package com.java.basis.map;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * Map接口的使用
 * 特点：存储键值对，键不能重复，值不能重复，无序
 * @author wangning
 * @create 2021-04-24 12:15
 * 因为HashMap put值都是按照值得hashcode排序的,所以取出来的值的顺序跟原来put进去的值得顺序是不一样的。
 * LinkedHashmap 的特点是put进去的对象位置未发生变化,而HashMap会发生变化.
 */
public class TestMap01 {

	public static void main(String[] args) {
		//创建Map集合
		Map<String, String> map = new HashMap<>();
		//1.添加元素
		map.put("cn", "中国");
		map.put("uk", "英国");
		map.put("usa", "美国");
		System.out.println(map.size());
		System.out.println(map.toString());
		System.out.println("-----------------------");

		System.out.println("aa = " + map.get("aa"));

		//2.删除
		//map.remove("usa");
//		System.out.println("-----------------------");

		//3.遍历
		//3.1使用keySet()遍历
		Set<String> strings = map.keySet();
		for (String key : map.keySet()) {
			System.out.println("key = " + key);
			System.out.println("value = " + map.get(key));
		}
		System.out.println("-----------------------");

		//3.2使用entrySet()方法
		Set<Map.Entry<String, String>> entries = map.entrySet();
		for (Map.Entry<String, String> entry : entries) {
			System.out.println("entry = " + entry);
		}
		System.out.println("-----------------------");

		//4.判断
		System.out.println(map.containsKey("cn"));
		System.out.println(map.containsValue("泰国"));
	}
}
